package zw_1_100.zw_7_整数反转;


class Solution {

    public static void main(String[] args) {
        int x = 1230;
        int num = reverse(x);
        System.out.println(num);
    }

    /**
     * 取模反转，还要判断是否溢出
     * @param x
     * @return
     */
    public static int reverse(int x) {
        int res = 0;
        int last = 0;
        while (x != 0) {
            //每次取末尾数字
            int tmp = x % 10;
            last = res;
            res = res * 10 + tmp;
            //判断整数溢出
            if (last != res / 10) {
                return 0;
            }
            x /= 10;
        }
        return res;
    }


//    public static int reverse(int x) {
//        int res = 0;
//        while (x != 0) {
//            //每次取末尾数字
//            int tmp = x % 10;
//            //判断是否 大于 最大32位整数  2147483647
//            if (res > 214748364 || (res == 214748364 && tmp > 7)) {
//                return 0;
//            }
//            //判断是否 小于 最小32位整数
//            if (res < -214748364 || (res == -214748364 && tmp < -8)) {
//                return 0;
//            }
//            res = res * 10 + tmp;
//            x /= 10;
//        }
//        return res;
//    }
}
